// 导入koa，和koa 1.x不同，在koa2中，我们导入的是一个class，因此用大写的Koa表示:
const Koa = require("koa");
// 处理跨域问题
const cors = require("./libs/koa-cors"); //跨域处理文件koa-cors.js

// post请求处理
const bodyParser = require("koa-bodyparser");
const controller = require("./controller");
const rest = require("./rest");

// 创建一个Koa对象表示web app本身:
const app = new Koa();

app.use(cors);
// app.use(cors());

// 记录url及页面执行时间
app.use(async (ctx, next) => {
  console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
  var start = new Date().getTime(),
    execTime;
  await next();
  execTime = new Date().getTime() - start;
  ctx.response.set("X-Response-Time", `${execTime}ms`);
});

// 解析POST请求
app.use(bodyParser());

app.use(rest.restify());
// 处理URL路由
app.use(controller());

// 在端口3000监听:
app.listen(3000);
console.log("app started at port 3000...");
